﻿using System;
using System.IO;
using System.Text;

namespace path类
{
    class Program
    {
        static void Main(string[] args)
        {
            //Path类
            //string str = @"C:\Drivers\Audio.Intel\5\老赵.wav";
            //获得文件名
            //Console.WriteLine(Path.GetFileName(str));
            //获得文件名但是不包含扩展名
            //Console.WriteLine(Path.GetFileNameWithoutExtension(str));
            //获得文件的扩展名
            //Console.WriteLine(Path.GetExtension(str));
            //获得文件所在的文件夹名称
            //Console.WriteLine(Path.GetDirectoryName(str));
            //获得文件所在的全路径
            //Console.WriteLine(Path.GetFullPath(str));
            //连接两个字符串作为路径
            //Console.WriteLine(Path.Combine(@"c:\a\","b.txt"));

            //--------------------------------------------------------------------------------------------------------------------------------------
            //File类
            //File只能读取小文件，因为它是一下全部读取，很浪费内存，所有只能读取小文件
            //创建一个文件
            //File.Create(@"C:\Users\Administrator\Desktop\new.txt");
            //Console.WriteLine("创建成功");
            //Console.ReadKey();
            //删除一个文件
            //File.Delete(@"C:\Users\Administrator\Desktop\new.txt");
            //复制一个文件
            //File.Copy(@"C:\Users\Administrator\Desktop\123.txt", @"C:\Users\Administrator\Desktop\new.txt");
            //Console.WriteLine("复制成功");
            //判断一个文件是否存在
            //bool b = File.Exists(@"C:\Users\Administrator\Desktop\new.txt");
            //Console.WriteLine(b);
            //剪切文件
            //File.Move(@"C:\Users\Administrator\Desktop\new.txt", @"C:\Users\Administrator\Desktop\new1.txt");

            //使用File来读取数据的三个方法
            //将文件转为二进制
            //ReadAllBytes 需要看除文本以外其他的内容，用ReadAllBytes转换成字节的形式去去读取到控制台
            //byte[] buffer = File.ReadAllBytes(@"C:\Users\Administrator\Desktop\new1.txt");
            //再将二进制转为字符串
            //string str = System.Text.Encoding.Default.GetString(buffer);
            //Console.WriteLine(str);

            //ReadAllLines：只能读文本文件，要是读取的数据需要精确到每一行用ReadAllLines
            //string[] strr = File.ReadAllLines(@"C:\Users\Administrator\Desktop\new1.txt");
            //for (int i = 0; i < strr.Length; i++)
            //{
            //    Console.WriteLine(strr[i]);
            //}
            //ReadAllText：只能读文本文件，如果只想把文本里面的数据展示到控制台一下用ReadAllText
            //string str= File.ReadAllText("new2.txt",Encoding.Default);
            //Console.WriteLine(str);

            //写入数据
            //如果写了不存在的路径，会给你新建一个文件，并且写入数据
            //WriteAllBytes 覆盖里面的数据并写入
            //string str = "我是你爸爸";
            ////将字符串转换成字节数组
            //byte[] buffer = System.Text.Encoding.Default.GetBytes(str);
            //File.WriteAllBytes(@"C:\Users\Administrator\Desktop\new2.txt",buffer);
            //Console.WriteLine("写入成功");


            //AppendAllLines 覆盖里面的数据，并把每个数据都作为一行显示
            //string[] strr = { "张三", "李四", "王权富贵", "阿三" };
            //File.WriteAllLines(@"C:\Users\Administrator\Desktop\new2.txt",strr);
            //Console.WriteLine("写入成功");

            //覆盖里面的数据并写入
            //File.WriteAllText(@"C:\Users\Administrator\Desktop\new2.txt", "今天休息，好好在家里写代码");
            //Console.WriteLine("写入成功");

            //AppendAllText 不覆盖里面的数据，并追加写入
            //File.AppendAllText(@"C:\Users\Administrator\Desktop\new2.txt", "写什么呢，不知道，睡觉把");
            //Console.WriteLine("写入成功");
            Console.ReadKey();
        }
    }
}
